$(document).ready(function(){
    $("#form_busqueda").submit(function(){
        return false;
    });
    // codigo que muestra la lista de años que tienen informacion en este caso es el campo de año menor en el formulario
    $.post("reportes/anio_menor.php", {}, function(data){
        var datos = data.split("|");            
        var num_datos = datos.length;        
        document.form_busqueda.anio_menor.length = num_datos
        for (var i = 0; i < num_datos; i ++){
            document.form_busqueda.anio_menor.options[i].value = datos[i]
            document.form_busqueda.anio_menor.options[i].text = datos[i]
            document.form_busqueda.anio_menor.options[i].title = datos[i]
        }
    }, "text");
    // Evento que carga el listado de años según lo seleccionado en el listado de año menor
    $("#anio_menor").change(function(){
        $("#graficas > *, #filtros > *, #reportes > *").remove();
        $("#fil_inst").attr({value: ''});
        $("#secretaria, #institucion, #sede, #grado, #fil_inst").attr("disabled", true);
        $("#anio_mayor option:eq(0), #secretaria option:eq(0), #grado option:eq(0), #institucion option:eq(0), #sede option:eq(0)").attr('selected', true);
       anio_mayor();
    });
    // Codigo que carga las secretarias que contienen información
    $.post("reportes/secretaria.php", {}, function(data){
        var datos = data.split("|");
        var datos1a = datos.pop();
        var datos2 = data.split("^");
        var datos2a = datos2.shift();        
        var num_datos = datos.length;
        document.form_busqueda.secretaria.length = num_datos
        for (var i = 0; i < num_datos; i ++){
            document.form_busqueda.secretaria.options[i].value = datos2[i]
            document.form_busqueda.secretaria.options[i].text = datos[i]
            document.form_busqueda.secretaria.options[i].title = datos[i]
        }
    }, "text");
    // Evento que carga el listado de instituciones según lo seleccionado en el listado de secretaria
    $("#secretaria").change(function(){
        $("#fil_inst").attr({value: ''});
       $("#graficas > *, #filtros > *, #reportes > *").remove();       
       $("#institucion, #sede, #fil_inst").attr("disabled", true);
       $("#institucion option:eq(0), #grado option:eq(0)").attr('selected', true);
       $("#sede :not(option:eq(0))").remove();
       // Condicion que activa la lista desplegable del grado
        if($("#secretaria").val() != ''){
            $("#grado").removeAttr("disabled");
        } else {
            $("#grado").attr("disabled", true);
        }
    });
    // Evento que activa la lista desplegable de institucion
    $("#grado").change(function(){
        $("#fil_inst").attr({value: ''});
        $("#graficas > *, #filtros > *, #reportes > *").remove();
        instituciones();
        $("#sede").attr("disabled", true);
        $("#institucion option:eq(0)").attr('selected', true);
        $("#sede :not(option:eq(0))").remove();       
        if($("#grado").val() != ''){
            $("#institucion, #fil_inst").removeAttr("disabled");
        } else {
            $("#institucion, #fil_inst").attr("disabled", true);
        }
    });
    // Evento que filtra el listado de instituciones segun el criterio dado en el filtro
    $("#fil_inst").keyup(function(){
        var val = $(this).val();
        if(val != ''){
            $("#institucion :options, .inst > img").remove();
            setTimeout("fil_inst();",400);
        } else{
            $("#institucion :options, .inst > img").remove();
            setTimeout("instituciones();",200);
        }
    });   
    // Evento que carga el listado de sedes según lo seleccionado en el listado de instituciones
    $("#institucion").change(function(){
       $("#graficas > *, #filtros > *, #reportes > *").remove();
       $("#sede :not(option:eq(0))").remove();
       sedes();       
       // Condicion que activa la lista desplegable de la sede
        if($("#institucion").val() != ''){
            $("#sede").removeAttr("disabled");
        } else {
            $("#sede").attr("disabled", true);
        }
    });
    // Evento que contiene la condicion para activar la lista desplegable de secretarias
    $("#anio_mayor").change(function(){
        $("#graficas > *, #filtros > *, #reportes > *").remove();
        $("#institucion, #sede, #grado, #fil_inst").attr("disabled", true);
        $("#secretaria option:eq(0), #grado option:eq(0), #institucion option:eq(0), #sede option:eq(0)").attr('selected', true);
        if($("#anio_mayor").val() != 'Seleccione'){
            $("#secretaria").removeAttr("disabled");
        } else {
            $("#secretaria").attr("disabled", true);
        }
    });
    $("#sede").change(function(){
       $("#graficas > *, #filtros > *, #reportes > *").remove();
    });
});

/* Funciones */

// funcion que es llamada cuando se selecciona el primer criterio de año para generar reporte (esta funcion carga los años en la segunda lista desplegable)
function anio_mayor(){
    var anio_menor = $("#anio_menor").val();
    $.ajax({
       type: 'POST',
       url: 'reportes/anio_mayor.php?nocache='+Math.random(),
       dataType: 'text',
       data: 'anio_menor='+anio_menor,
       success: function(responseText){
           var datos = responseText.split("|");
           var num_datos = datos.length;            
            document.form_busqueda.anio_mayor.length = num_datos
            for (var i = 0; i < num_datos; i ++){
            document.form_busqueda.anio_mayor.options[i].value = datos[i]
            document.form_busqueda.anio_mayor.options[i].text = datos[i]
            document.form_busqueda.anio_mayor.options[i].title = datos[i]
        }
       },
       error: function(){
           alert("Ha ocurrido un error durante la petici\xf3n al servidor.");
       }
    });
}
// funcion que se llama para mostrar las instituciones según la secretaria seleccionada.
function instituciones(){
    var secretaria = $("#secretaria").val();
    var grado = $("#grado").val();
    $.ajax({
       type: 'POST',
       url: 'reportes/institucion.php?nocache='+Math.random(),
       dataType: 'text',
       beforeSend: function(){
         $(".inst").append("<img src='estilos/imagenes/loader9.gif' width='17' height='17'>");
       },
       data: 'secretaria='+secretaria+'&grado='+grado,
       success: function(responseText){
            var datos = responseText.split("|");
            var datos1a = datos.pop();
            var datos2 = responseText.split("^");
            var datos2a = datos2.shift();
            var num_datos = datos.length;
            document.form_busqueda.institucion.length = num_datos
            for (var i = 0; i < num_datos; i ++){
                document.form_busqueda.institucion.options[i].value = datos2[i]
                document.form_busqueda.institucion.options[i].text = datos[i]
                document.form_busqueda.institucion.options[i].title = datos[i]
            }
            $(".inst > img").remove();
       },
       error: function(){
           alert("Ha ocurrido un error durante la petici\xf3n al servidor.");
       }
    });
}
// funcion que se llama para mostrar las instituciones según el criterio del filtro.
function fil_inst(){
    var criterio = $("#fil_inst").val();
    $.ajax({
       type: 'POST',
       url: 'reportes/fil_institucion.php?nocache='+Math.random(),
       dataType: 'text',
       beforeSend: function(){
            if($(".inst > img").is(":visible")){
                $(".inst > img").replaceWith("<img src='estilos/imagenes/loader9.gif' width='17' height='17'>");
            } else {
                $("#institucion").after("<img src='estilos/imagenes/loader9.gif' width='17' height='17'>");
            }
       },
       data: 'criterio='+criterio,
       success: function(responseText){
            var datos = responseText.split("|");
            var datos1a = datos.pop();
            var datos2 = responseText.split("^");
            var datos2a = datos2.shift();
            var num_datos = datos.length;
            document.form_busqueda.institucion.length = num_datos
            for (var i = 0; i < num_datos; i ++){
                document.form_busqueda.institucion.options[i].value = datos2[i]
                document.form_busqueda.institucion.options[i].text = datos[i]
                document.form_busqueda.institucion.options[i].title = datos[i]
            }
            $(".inst > img").remove();
       },
       error: function(){
           alert("Ha ocurrido un error durante la petici\xf3n al servidor.");
       }
    });
}
// funcion que se llama para mostrar las sedes según la institucion seleccionada.
function sedes(){
    var institucion = $("#institucion").val();
    var grado = $("#grado").val();
    $.ajax({
       type: 'POST',
       url: 'reportes/sede.php?nocache='+Math.random(),
       dataType: 'text',
       beforeSend: function(){
         $("#sede").after("&nbsp;<img src='estilos/imagenes/loader9.gif' width='17' height='17'>");
       },
       data: 'institucion='+institucion+'&grado='+grado,
       success: function(responseText){
            var datos = responseText.split("|");
            var datos1a = datos.pop();
            var datos2 = responseText.split("^");
            var datos2a = datos2.shift();
            var num_datos = datos.length;
            document.form_busqueda.sede.length = num_datos
            for (var i = 0; i < num_datos; i ++){
                document.form_busqueda.sede.options[i].value = datos2[i]
                document.form_busqueda.sede.options[i].text = datos[i]
                document.form_busqueda.sede.options[i].title = datos[i]
            }
            $(".sede > img").remove();
       },
       error: function(){
           alert("Ha ocurrido un error durante la petici\xf3n al servidor.");
       }
    });
}
